home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 2
/
Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso
/
Aminet
/
util
/
libs
/
MultiReq.lha
/
MultiReq
/
C
/
SimpleDemo.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-11-12
|
4KB
|
168 lines
/* my includes */
#include <exec/types.h>
#include <libraries/multireq.h>
#include <clib/multireq_protos.h>
#include <pragmas/multireq_lib.h>
/* some Functions not defined yet */
extern struct MultiReqBase *OpenLibrary();
extern UWORD FileRequester();
extern void InitFileReq(), FreeFileReq();
/* a pointer to the multireq.library base */
struct MultiReqBase *MultiReqBase;
/* memory for the pointer to the FileReq-structure */
struct FileReq *fr;
/* the main program */
main(argc,argv)
int argc;
char **argv;
{
register UWORD erg;
/* open the multireq.library */
if(!(MultiReqBase=OpenLibrary("multireq.library",0L)))
{
puts("Can't open multireq.library !");
exit(0);
}
/* Create a FileReq-structure */
InitFileReq(&fr,2L); /* 2 allways as second argument, cause no other
number of filelists suported yet */
if(fr) /* FileReq-structure ok ? */
{
/* Set some sample parameters */
SetParameters();
do
{
/* start FileRequester on WorkBench-screen */
erg=FileRequester(fr,NULL);
/* Say how the FileRequester was ended */
WriteAction();
}while(erg==RET_OKAY); /* should I start again ? */
/* Delete the FileReq-structure and free the memory */
FreeFileReq(&fr);
}
else
puts("Unable to create FileReq-structure !");
/* Close the multireq.library */
CloseLibrary(MultiReqBase);
if(argc==0)
Delay(200L); /* I'm started from WBench, so I wait 2 Seconds */
/* everything done, bye ! */
}
/* This routine is a example how to interpret the ReturnStatus of the */
/* FileRequester (notice the value ReturnStatus is identical to that returned */
/* by the FileRequester-function */
WriteAction()
{
switch(fr->ReturnStatus)
{
case RET_ERROR: /* start successfull ? */
puts("Unable to open FileRequester !");
break;
case RET_CANCEL: /* Cancel-gadget pressed */
puts("You've clicked on the Cancel-gadget");
break;
case RET_CLOSE: /* Close-gadget pressed */
puts("You've clicked on the Close-gadget");
break;
case RET_FILE: /* RETURN pressed */
puts("You've pressed <RETURN> in the File-gadget");
break;
case RET_DOUBLE: /* DoubleClick on File */
puts("You've done a DoubleClick on a File");
break;
case RET_OKAY: /* Okay-gadget pressed */
puts("You've pressed on the Okay-gadget");
puts(" => the FileRequester is started again");
break;
}
puts("\nThe follwing file was selected:");
puts(fr->FileNameBuff);
puts(""); /* write a free line after the filename */
}
/* the following part contains some parameters for the FileRequester */
/* all this parameters are optional, cause FileRequester also works, when no */
/* parameters are set (InitFileReq has done this for you) */
static UBYTE Title[]="The multitasking FileRequester by Andreas Krebs";
static UBYTE Okay[]="go on";
static UBYTE Dir1[]="SYS:";
static UBYTE Dir2[]="DEVS:";
static UBYTE File[]="SampleFile";
static UBYTE Show[]="*.*|*-*"; /* Show all files with a . or - in it */
static UBYTE Hide[]="*+*"; /* Hide all files with a + in it */
SetParameters()
{
fr->TitleString=Title; /* Set title of FileRequester */
fr->OkayString=Okay; /* Set text of Okay-gadget */
fr->LeftEdge=20; /* Set LeftEdge of FileRequester */
fr->TopEdge=10; /* Set TopEdge of FileRequester */
fr->ActiveList=1; /* Show filelist 2 first */
fr->ShowInfo=HIDE_INFO; /* Don't show .info-files */
strcpy(fr->FileBuff,File); /* File to be displayed in File-Gadget */
strcpy(fr->ShowBuff,Show); /* Files to be shown */
strcpy(fr->HideBuff,Hide); /* Files to be hidden */
strcpy(fr->FileList[0].DrawerBuff,Dir1);
/* Set name of first directory */
fr->FileList[0].AutoRead=NO_AUTOREAD;
/* Do not automatically readin first directory */
strcpy(fr->FileList[1].DrawerBuff,Dir2);
/* Set name of second directory */
fr->FileList[1].AutoRead=DO_AUTOREAD;
/* Do automatically readin second directory */
}